function ClientInfo(doc, container, width, height, user, date, options, data) {
  this._doc = doc;
  this._container = container;
  this._width = width;
  this._height = height;
  this._user = user;
  this._date = date;
  this._options = options;
  this._data = data;
  
  this._unique = MiscUtils.unique();
  this._createElements();
  this._gui = AbsClientInfo.gui(this._unique);
};

ClientInfo.prototype._createElements = function() {
  var table, tr, td, input, itable, itr, itd;
  
  this._container.align = 'left';
  
  table = document.createElement('table');
  table.cellPadding = 0;
  table.cellSpacing = 0;
  table.style.padding = '10px 0';
  table.style.color = '#17183e';
  table.style.fontSize = '10pt';
  this._container.appendChild(table);
  
  tr = table.insertRow(-1);
  td = tr.insertCell(-1);
  td.style.verticalAlign = 'top';
  
  itable = document.createElement('table');
  itable.cellPadding = 0;
  itable.cellSpacing = 0;
  itable.style.fontWeight = 'bold';
  td.appendChild(itable);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.width = '150px';
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Surname'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_name_family_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Given Names'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_name_first_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('File Folder No.'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_file_folder_num_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Date of Birth'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_date_birth_date';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Nationality'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_nationality_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Gender'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('select');
  input.style.width = '264px';
  input.id = this._unique + '_gender_select';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Partner Status'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('select');
  input.style.width = '264px';
  input.id = this._unique + '_partnership_status_select';
  itd.appendChild(input);
  
  td = tr.insertCell(-1);
  td.style.verticalAlign = 'top';
  
  itable = document.createElement('table');
  itable.cellPadding = 0;
  itable.cellSpacing = 0;
  itable.style.fontWeight = 'bold';
  td.appendChild(itable);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.width = '200px';
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Address'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_addr1_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode(''));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_addr2_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode(''));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_addr3_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Contact No. 1'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_phone1_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Contact No. 2'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_phone2_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Contact No. 3'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_phone3_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Email'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_email_text';
  itd.appendChild(input);
  
  tr = table.insertRow(-1);
  td = tr.insertCell(-1);
  td.style.verticalAlign = 'top';
  td.style.padding = '35px 0 0 0';
  
  itable = document.createElement('table');
  itable.cellPadding = 0;
  itable.cellSpacing = 0;
  itable.style.fontWeight = 'bold';
  td.appendChild(itable);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.width = '150px';
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Passport No.'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_pass_num_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Passport Expiry Date'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_pass_date_issue_date';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Passport Issue Date'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_pass_date_exp_date';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Country of Birth'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_country_birth_text';
  itd.appendChild(input);
  
  td = tr.insertCell(-1);
  td.style.verticalAlign = 'top';
  td.style.padding = '35px 0 0 0';
  
  itable = document.createElement('table');
  itable.cellPadding = 0;
  itable.cellSpacing = 0;
  itable.style.fontWeight = 'bold';
  td.appendChild(itable);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.width = '200px';
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Referee Person/Sub Agent'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_agent_text';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Staff'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('select');
  input.style.width = '264px';
  input.id = this._unique + '_staff_select';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('First Contact Date'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('input');
  input.type = 'text';
  input.style.width = '260px';
  input.id = this._unique + '_first_contact_date_date';
  itd.appendChild(input);
  
  itr = itable.insertRow(-1);
  itd = itr.insertCell(-1);
  itd.style.padding = '6px 10px';
  itd.style.textAlign = 'right';
  itd.appendChild(document.createTextNode('Contents and Price'));
  itd = itr.insertCell(-1);
  itd.style.height = '25px';
  input = document.createElement('textarea');
  input.rows = 4;
  input.style.width = '260px';
  input.id = this._unique + '_first_contact_detail_text';
  itd.appendChild(input);
};